
# 模块
"""
1. 概念 ： 就是一个python文件 ，在此文件中可以编写函数 ，类以及类型的方法 。
2. 作用 ：在模块中定义了成员 ，它就可以被其它模块所访问 ，前提就是必须先导入这个模块 。
3. 导入 ：
    (1) . import 模块名
        优点 ：一次性导入所有成员 ，使用起来比较方便 。
        缺点 ： 会占用更多的内存资源

    (2). from 模块名 import 成员
        优点 ：减少内存占用 ，用啥导入啥 。
        缺点 ：当进行引入大量的成员时 ，导入起来比较麻烦 。

4. 说明 ：
    1. 当使用import 导入时。，使用成员时必须在成员加上模块名 ，格式 ：模块名.成员
    2. 到导入的模块不在同一路径下 ，必须是从项目路径下开始找 。
    3. 若采用from ... import 成员 方式去导入 ，成员可以是多个 ，若是多个的话 ，中间需要英文逗号开个 ，
    4. 也可以采用*代表所有成员直接导入

5. 导入逻辑
    1.首先会从本模块所在的路径下搜索对应的模块名 ，若找到了此模块，则进行导入。
    2. 若在本路径下没有找到 ，则会从系统设置的环境变量下找 ，如果找到 ，也会导入 。
    3. 若上面的路径也未找到，则直接导入失败 ，报错


二 . 包
1. 概念 ： 就是一个特殊的目录 ，在此目录下会生成一个__init__.py
2. 作用 ：当模块比较多的时候 ，创建包方便管理，分类管理 。
3. 导入 ： 和模块的导入是一样的。

三 .分类
包括 ：系统模块(包) ，第三方模块(包) ，自定义模块(包)
"""

# 通过第一种导入
import demo04_func04_option

print("====================================")
print(demo04_func04_option.login('admin','123456'))


# 第二种方式导入
from demo04_func04_option import login
print("-----------------------------------")
print(login('admin','123456'))


# 导入不同路径的模块
print("========================")
from demo04_function.demo04_func04_option import *

print(login1('admin','123'))

import os

